package com.vhall.component.controller.goods.facade;

import com.vhall.component.entity.goods.goods.*;
import com.vhall.component.entity.goods.vo.GetGoodsInfoResponseVO;
import com.vhall.component.entity.goods.vo.GuoxinPrdApiBindReqVO;
import com.vhall.component.entity.page.vo.PageVO;
import com.vhall.component.plugin.common.annotation.VssTokenAuth;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;

/**
 * 直播间-产品
 *
 * @author guoxin.wang
 * @date 2021/10/26
 */
@FeignClient(value = "LiveGoodsApiFacade", path = "/v4/api/live-goods")
public interface LiveGoodsApiFacade {

    /**
     * 获取直播间绑定商品列表
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @PostMapping("/bind-list")
    GoodsPage<GoodsApiBindListRspVO> getBindList(@Validated GoodsApiBindListReqVO reqVO);

    /**
     * 获取直播间绑定商品列表-国信
     * - 目前返回固定的房间关联产品,
     * @param reqVO 参数
     * @return 返回值
     */
    @VssTokenAuth
    @PostMapping("/guoxin/bind-list")
    PageVO<GetGoodsInfoResponseVO> getGuoxinPrdBindList(@Validated GuoxinPrdApiBindReqVO reqVO);

    /**
     * 发起端-商品推屏
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @PostMapping("/push-screen")
    Boolean pushScreen(@Validated GoodsApiSendMessageReqVO reqVO);

    /**
     * 发起端-设置观众端商品列表入口开关
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @PostMapping("/set-goods-switch")
    Boolean setGoodsSwitch(@Validated GoodsApiSetGoodsSwitchReqVO reqVO);

    /**
     * 观看端-商品详情
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @PostMapping("/detail")
    GoodsRspVO get(@Validated GoodsDetailReqVO reqVO);

}
